//package com.yqs.servlet;
//
//import com.yqs.entity.Emp;
//import com.yqs.mapper.EmpMapper;
//import com.yqs.utils.JsonUtil;
//import com.yqs.utils.PageUtil;
//import com.yqs.utils.SqlSessionFactoryUtil;
//import org.apache.ibatis.session.SqlSession;
//
//import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * @author Ye QS
// * @version 0.1
// * @className ListPageServlet
// * @description
// * @date 2024/8/1 11:05
// * @since jdk11
// */
//// 使用@WebServlet注解指定servlet的访问路径
//@WebServlet("/listPage")
//public class ListPageServlet extends HttpServlet {
//    // 处理POST请求的方法
//    @Override
//    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        // 获取SqlSession对象，它是MyBatis中用于执行数据库操作的对象
//        SqlSession session = SqlSessionFactoryUtil.getSqlSession();
//        // 通过SqlSession获取EmpMapper接口的实例，用于访问数据库中的员工数据
//        EmpMapper mapper = session.getMapper(EmpMapper.class);
//
//        // 从请求参数中获取页码pageNum和每页显示的行数pageSize
//        int pageNum = Integer.parseInt(req.getParameter("pageNum"));
//        int pageSize = Integer.parseInt(req.getParameter("pageSize"));
//
//        // 创建参数映射，用于分页查询
//        Map<String, Object> params = new HashMap<>();
//        // 计算数据库查询的起始行，MyBatis分页查询需要这个参数
//        params.put("pageNum", pageSize * (pageNum - 1));
//        params.put("pageSize", pageSize);
//
//        // 执行分页查询，获取当前页的员工数据列表
//        List<Emp> empsByPage = mapper.getEmpsByPage(params);
//        // 获取总的员工数量，用于计算总页数
//        int count = mapper.getEmpCount();
//        // 计算总页数，使用PageUtil工具类的getTotalPages方法
//        int totalPages = PageUtil.getTotalPages(count, pageSize);
//
//        // 准备返回给前端的数据，包含员工列表、当前页码、每页大小和总页数
//        Map<String, Object> maps = new HashMap<>();
//        maps.put("empList", empsByPage);
//        maps.put("pageNum", pageNum);
//        maps.put("pageSize", pageSize);
//        maps.put("totalPages", totalPages);
//
//        // 使用JsonUtil工具类的getJson方法将数据以JSON格式写入响应中，这里需要JsonUtil类的具体实现
//        JsonUtil.getJson(req, resp, maps);
//    }
//
//    // 处理GET请求的方法，通常和POST方法相同，这里直接调用doPost方法
//    @Override
//    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        doPost(req, resp);
//    }
//}
